package cn.iocoder.yudao.module.api.pay.wallet;

import cn.iocoder.yudao.module.api.pay.wallet.dto.PayWalletAddBalanceReqDTO;
import cn.iocoder.yudao.module.api.pay.wallet.dto.PayWalletReduceBalanceReqDTO;
import cn.iocoder.yudao.module.api.pay.wallet.dto.PayWalletRespDTO;

/**
 * 钱包 API 接口
 *
 * @author liurulin
 */
public interface PayWalletApi {

    /**
     * 获取钱包信息。由于用户注册时候不会创建钱包，故如果不存在则创建。
     *
     * @param userType 用户类型
     * @param userId   用户编号
     */
    PayWalletRespDTO getOrCreateWallet(Integer userType, Long userId);

    /**
     * 添加钱包余额
     *
     * @param dto 增加余额请求
     */
    void addWalletBalance(PayWalletAddBalanceReqDTO dto);

    /**
     * 扣减钱包余额
     *
     * @param dto 扣减余额请求
     */
    void reduceWalletBalance(PayWalletReduceBalanceReqDTO dto);

}
